package yt.demo.appcommontools.utils;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;

public class AnnotationUtils {

    /**
     * 复制父类字段的注解到子类字段
     * @param parentField 父类字段
     * @param childField 子类字段
     */
    public static void copyAnnotations(Field parentField, Field childField) {
        // 获取父类字段上的所有注解
        Annotation[] parentAnnotations = parentField.getAnnotations();

        // 遍历父类字段上的所有注解
        for (Annotation parentAnnotation : parentAnnotations) {
            // 如果子类字段没有这个注解，就复制
            if (!childField.isAnnotationPresent(parentAnnotation.annotationType())) {
                // 子类字段添加父类注解
                childField.setAccessible(true);
                // 在此无法直接复制注解，需要处理注解类型信息，手动映射
                System.out.println("复制注解：" + parentAnnotation.annotationType().getSimpleName());
                // 根据需求做其他处理，可以扩展更复杂的复制机制
            }
        }
    }
}
